package com.marketingcenter.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.*;
import java.math.BigDecimal;
import java.util.List;

/**
 * M选N权益卡实体类
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Entity
@Table(name = "m_choose_n_card")
public class MChooseNCard extends Promotion {

    private static final long serialVersionUID = 1L;

    /**
     * 选项总数(M)
     */
    private Integer totalOptions;

    /**
     * 可选数量(N)
     */
    private Integer selectableCount;

    /**
     * 卡的售价
     */
    private BigDecimal price;

    /**
     * 每人限购数量
     */
    private Integer maxPerUser;

    /**
     * 总发行量
     */
    private Integer totalQuantity;

    /**
     * 已售出数量
     */
    private Integer soldQuantity;

    /**
     * 有效期类型：1-固定日期，2-购买后N天有效
     */
    private Integer validityType;

    /**
     * 购买后有效期天数（当validityType=2时有效）
     */
    private Integer validDays;

    /**
     * 权益选项列表
     */
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JoinColumn(name = "cardId")
    private List<MChooseNOption> options;

}